package com.example;

/**
 * @Author loubobooo
 * @Description #100. 相同的树
 * @Date 2020/3/23
 */
public class SameTree {

    static class TreeNode {
        int val;
        TreeNode left;
        TreeNode right;

        TreeNode(int x) {
            val = x;
        }
    }

    /**
     * @Author loubobooo
     * @Description 给定两个二叉树，编写一个函数来检验它们是否相同。
     *
     * 如果两个树在结构上相同，并且节点具有相同的值，则认为它们是相同的。
     * @Date 2020/3/23 16:48
     * @Param
     * @return
     **/
    public boolean isSameTree(TreeNode p, TreeNode q) {
        // 设定终止条件
        // 1. 两个节点都为空true
        if(p == null && q == null){
            return true;
        }
        // 2. 其中有一个节点为空false
        if(p == null || q== null){
            return false;
        }
        // 3. 值不相等返回false
        if(p.val != q.val){
            return false;
        }
        return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
    }


}
